package org.example.servicelisten.service.impl;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.example.servicelisten.service.SmsService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * 短信服务实现类
 */
@Service
@Slf4j
public class SmsServiceImpl implements SmsService {

//    @Value("${aliyun.sms.access-key-id}")
//    private String accessKeyId;
//
//    @Value("${aliyun.sms.access-key-secret}")
//    private String accessKeySecret;
//
//    @Value("${aliyun.sms.sign-name}")
//    private String signName;
//
//    @Value("${aliyun.sms.template-code}")
//    private String templateCode;

    /**
     * 发送短信
     * @param phone 手机号码
     * @param templateParams 模板参数
     * @return 是否发送成功
     */
//    @Override
//    @Async
//    public boolean sendSms(String phone, Map<String, String> templateParams) {
//        try {
//            log.info("开始发送短信到 {}", phone);
//
//            // 创建DefaultProfile对象
//            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
//            IAcsClient client = new DefaultAcsClient(profile);
//
//            // 创建CommonRequest对象
//            CommonRequest request = new CommonRequest();
//            request.setSysMethod(MethodType.POST);
//            request.setSysDomain("dysmsapi.aliyuncs.com");
//            request.setSysVersion("2017-05-25");
//            request.setSysAction("SendSms");
//            request.putQueryParameter("PhoneNumbers", phone);
//            request.putQueryParameter("SignName", signName);
//            request.putQueryParameter("TemplateCode", templateCode);
//            // 将模板参数转换为JSON字符串
//            String templateParam = JSON.toJSONString(templateParams);
//            request.putQueryParameter("TemplateParam", templateParam);
//
//            // 发送请求并获取响应
//            CommonResponse response = client.getCommonResponse(request);
//
//            // 处理响应
//            if (response.getHttpStatus() == 200) {
//                log.info("短信发送成功到 {}，模板参数: {}", phone, templateParam);
//                return true;
//            } else {
//                log.error("短信发送失败到 {}，响应状态: {}", phone, response.getHttpStatus());
//                return false;
//            }
//        } catch (ServerException e) {
//            log.error("短信发送失败到 {}，服务端异常", phone, e);
//            return false;
//        } catch (ClientException e) {
//            log.error("短信发送失败到 {}，客户端异常", phone, e);
//            return false;
//        } catch (Exception e) {
//            log.error("短信发送失败到 {}，未知异常", phone, e);
//            return false;
//        }
//    }
}